#include <stdio.h>
#include <stdlib.h>
 
#define max 8
 
int Q[max], sum=0; 
 
void show()
{
    int i;
    for(i = 0; i < max; i++)
    {
         printf("(%d,%d) ", i, Q[i]);
    }
    printf("\n");
    sum++;
}
 
int check(int n) 
{
    int i;
    for(i = 0; i < n; i++) 
    {
        if(Q[i] == Q[n] || abs(Q[i] - Q[n]) == (n - i))
        {
            return 1;
        }
    }
    return 0;
}
 
void put(int n) 
{
    int i;
    for(i = 0; i < max; i++)
    {       
        Q[n] = i; 
        if(!check(n))
        {           
            if(n == max - 1)
            {
                show(); 
            }         
            else
            {
                put(n + 1); 
            }
        }
    }
}
 
int main()
{
    put(0); 
    printf("%d", sum);
    return 0;
}

